home *** CD-ROM | disk | FTP | other *** search
/ Disc Tracy / Disc Tracy (Wayzata Technology)(6011)(1990).bin / Modula-2 / Ackerman.m < prev    next >
Encoding:
Text File  |  1987-12-04  |  753 b   |  45 lines  |  [TEXT/QED1]

  1. MODULE Bench;
  2.  
  3. FROM InsideMac IMPORT
  4.     Delay,Ticks,Button;
  5.  
  6. FROM InOut IMPORT
  7.     WriteString,WriteLn,Read;
  8. FROM RealInOut IMPORT
  9.     WriteReal;
  10.  
  11. VAR
  12.     time:LONGINT; i,j:CARDINAL;
  13.  
  14. PROCEDURE Ackermans(m,n:CARDINAL):CARDINAL;
  15. BEGIN
  16.     IF m=0 THEN
  17.         RETURN n+1
  18.     ELSIF n=0 THEN
  19.         RETURN Ackermans(m-1,1)
  20.     ELSE
  21.         RETURN Ackermans(m-1,Ackermans(m,n-1))
  22.     END
  23. END Ackermans;
  24.  
  25. BEGIN
  26.     WriteString("20 iterations of function Ackermans(3,5).");
  27.     WriteLn;
  28.     Delay(3,time);
  29.  
  30.     FOR i := 1 TO 20 DO
  31.         j := Ackermans(3,5);
  32.     END;
  33.  
  34.     time:=Ticks-time;
  35.     WriteReal(FLOAT(time)/60.0,6);
  36.     WriteString("..");
  37.     WriteReal(FLOAT(time+1)/60.0,6);
  38.     WriteString(" seconds.");
  39.     WriteReal(FLOAT(j),8);
  40.     WriteLn;
  41.     WriteString("Press mouse button to terminate.");
  42.     REPEAT
  43.     UNTIL Button()
  44. END Bench.
  45.